/**
reflect 反射
2018/8/16
wgg
*/
package main

import (
	"reflect"
	"fmt"
)

func main() {
	var x float64 = 3.4
	//获取反射值能返回相应的类型和数值
	v := reflect.ValueOf(x)  //得到实际的值，通过v我们获取存储在里面的值，还可以去改变值
	fmt.Println("v:",v)  //3.4
	fmt.Println("type:",v.Type()) //获取元素类型、获取指针所指对象类型，获取接口的动态类型 float64
	fmt.Println("kind = ",v.Kind()) //获取 t 类型的类别 float64
	fmt.Println("kind is float64:",v.Kind() == reflect.Float64) // true
	fmt.Println("value:",v.Float()) // 3.4

	o := reflect.TypeOf(x)
	fmt.Println("name",o.Name())
	fmt.Println("name",o)
}
